An example of an interface design application is an Integrated Development Environment (IDE) software application that provides comprehensive facilities to computer programmers for software development. An IDE may include a source code editor, a compiler and/or interpreter, build automation tools, and usually a debugger. Sometimes a version control system and various tools are integrated to simplify the construction of a GUI. Many modern IDEs also have a class browser, an object inspector, and a class hierarchy diagram, for use with object oriented software development. Some well known IDEs include GNU EMACS™, ECLIPSE™, VISUAL STUDIO™, and Adobe FLEX BUILDER®.